home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / etc / init.d / apport < prev    next >
Text File  |  2008-10-20  |  2KB  |  106 lines

  1. #! /bin/sh
  2.  
  3. ### BEGIN INIT INFO
  4. # Provides:          apport
  5. # Required-Start:    $local_fs $remote_fs
  6. # Required-Stop:     $local_fs $remote_fs
  7. # Default-Start:     2 3 4 5
  8. # Default-Stop:      
  9. # Short-Description: automatic crash report generation
  10. ### END INIT INFO
  11.  
  12. PATH=/bin
  13. DESC="automatic crash report generation"
  14. NAME=apport
  15. AGENT=/usr/share/apport/apport
  16. SCRIPTNAME=/etc/init.d/$NAME
  17.  
  18. # Exit if the package is not installed
  19. [ -x "$AGENT" ] || exit 0
  20.  
  21. # read default file
  22. enabled=1
  23. [ -e /etc/default/$NAME ] && . /etc/default/$NAME || true
  24.  
  25. [ "$enabled" = "1" ] || exit 0
  26.  
  27. # Define LSB log_* functions.
  28. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
  29. . /lib/lsb/init-functions
  30.  
  31. #
  32. # Function that starts the daemon/service
  33. #
  34. do_start()
  35. {
  36.     # Return
  37.     #   0 if daemon has been started
  38.     #   1 if daemon was already running
  39.     #   2 if daemon could not be started
  40.  
  41.     [ -e /var/crash ] || mkdir -p /var/crash
  42.         chmod 1777 /var/crash
  43.  
  44.         # check for kernel crash dump, convert it to apport report
  45.         if [ -e /var/crash/vmcore ]; then
  46.             /usr/share/apport/kernel_crashdump || true
  47.         fi
  48.  
  49.         echo "|$AGENT %p %s %c" > /proc/sys/kernel/core_pattern
  50. }
  51.  
  52. #
  53. # Function that stops the daemon/service
  54. #
  55. do_stop()
  56. {
  57.     # Return
  58.     #   0 if daemon has been stopped
  59.     #   1 if daemon was already stopped
  60.     #   2 if daemon could not be stopped
  61.     #   other if a failure occurred
  62.  
  63.     if [ "`dd if=/proc/sys/kernel/core_pattern count=1 bs=1 2>/dev/null`" != "|" ]; then
  64.         return 1
  65.     else
  66.         echo "core" > /proc/sys/kernel/core_pattern
  67.     fi
  68. }
  69.  
  70. # Set max core dump size, if specified in the default file
  71. set_maxsize()
  72. {
  73.     if [ -n "$maxsize" ] && [ -e /proc/sys/kernel/crashdump-size ]; then
  74.     echo "$maxsize" > /proc/sys/kernel/crashdump-size
  75.     fi
  76. }
  77.  
  78. case "$1" in
  79.   start)
  80.     [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC:" "$NAME"
  81.     do_start
  82.     case "$?" in
  83.         0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  84.         2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  85.     esac
  86.     set_maxsize
  87.     ;;
  88.   stop)
  89.     [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC:" "$NAME"
  90.     do_stop
  91.     case "$?" in
  92.         0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  93.         2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  94.     esac
  95.     ;;
  96.   restart|reload|force-reload)
  97.     set_maxsize
  98.     ;;
  99.   *)
  100.     echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
  101.     exit 3
  102.     ;;
  103. esac
  104.  
  105. :
  106.